Typically personal cloud storage services employ algorithms of file duplication, which allow the cloud storage server to identify files on a user device, which are already stored in the server in order not to download them again from the user device. When a user uploads a file to the cloud storage from a user device, the file is not being actually stored in the system. User device, from which the file is being uploaded, calculates a unique file identifier, which is usually based on a hash value or several hash values combined. User device then sends this identifier to the cloud storage server and, if a file with the same identifier is already present in the server, the server does not download the actual file from the user device, but creates a visual representation of the file in the user's personal cloud storage directory. This visual representation (e.g., symlink) is linked to the original file stored in the cloud storage server.
In cases when a file to be uploaded to the cloud storage server is large, calculation of the unique file identifier at the user device may be time and resource consuming. Therefore, there is a need for a more efficient mechanism for duplication of files at the user device.